1 /*
2 * Hibernate, Relational Persistence for Idiomatic Java
3 *
4 * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
5 * indicated by the @author tags or express copyright attribution
6 * statements applied by the authors. All third-party contributions are
7 * distributed under license by Red Hat Inc.
8 *
9 * This copyrighted material is made available to anyone wishing to use, modify,
10 * copy, or redistribute it subject to the terms and conditions of the GNU
11 * Lesser General Public License, as published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
16 * for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public License
19 * along with this distribution; if not, write to:
20 * Free Software Foundation, Inc.
21 * 51 Franklin Street, Fifth Floor
22 * Boston, MA 02110-1301 USA
23 */
24 package org.hibernate.dialect;
25 import java.sql.Types;
26
27 /**
28 * An SQL dialect compatible with Progress 9.1C<br>
29 *<br>
30 * Connection Parameters required:
31 *<ul>
32 * <li>hibernate.dialect org.hibernate.sql.ProgressDialect
33 * <li>hibernate.driver com.progress.sql.jdbc.JdbcProgressDriver
34 * <li>hibernate.url jdbc:JdbcProgress:T:host:port:dbname;WorkArounds=536870912
35 * <li>hibernate.username username
36 * <li>hibernate.password password
37 *</ul>
38 * The WorkArounds parameter in the URL is required to avoid an error
39 * in the Progress 9.1C JDBC driver related to PreparedStatements.
40 * @author Phillip Baird
41 *
42 */
43 public class ProgressDialect extends Dialect {
44 public ProgressDialect() {
45 super();
46 registerColumnType( Types.BIT, "bit" );
47 registerColumnType( Types.BIGINT, "numeric" );
48 registerColumnType( Types.SMALLINT, "smallint" );
49 registerColumnType( Types.TINYINT, "tinyint" );
50 registerColumnType( Types.INTEGER, "integer" );
51 registerColumnType( Types.CHAR, "character(1)" );
52 registerColumnType( Types.VARCHAR, "varchar($l)" );
53 registerColumnType( Types.FLOAT, "real" );
54 registerColumnType( Types.DOUBLE, "double precision" );
55 registerColumnType( Types.DATE, "date" );
56 registerColumnType( Types.TIME, "time" );
57 registerColumnType( Types.TIMESTAMP, "timestamp" );
58 registerColumnType( Types.VARBINARY, "varbinary($l)" );
59 registerColumnType( Types.NUMERIC, "numeric($p,$s)" );
60 }
61
62 public boolean hasAlterTable(){
63 return false;
64 }
65
66 public String getAddColumnString() {
67 return "add column";
68 }
69
70 public boolean qualifyIndexName() {
71 return false;
72 }
73 }